#!/bin/bash

# Dashboard 项目上传脚本
# 使用方法: ./upload-dashboard.sh

SERVER_IP="47.97.2.18"
SERVER_USER="ecs-user"  # 替换为你的服务器用户名
LOCAL_DIST_PATH="./dist"
REMOTE_PATH="/var/www/dashboard"

echo "🚀 开始部署 Dashboard 项目到服务器..."

# 检查本地 dist 目录是否存在
if [ ! -d "$LOCAL_DIST_PATH" ]; then
    echo "❌ 错误: 本地 dist 目录不存在"
    echo "请先运行 'npm run build' 构建项目"
    exit 1
fi

echo "📦 本地构建文件检查通过"

# 1. 备份服务器上的旧版本（如果存在）
echo "💾 备份服务器上的旧版本..."
ssh $SERVER_USER@$SERVER_IP "
    if [ -d '$REMOTE_PATH' ] && [ \"\$(ls -A $REMOTE_PATH)\" ]; then
        sudo cp -r $REMOTE_PATH ${REMOTE_PATH}.backup.\$(date +%Y%m%d_%H%M%S)
        echo '✅ 旧版本已备份'
    else
        echo '📁 首次部署，无需备份'
    fi
"

# 2. 清空目标目录
echo "🧹 清空目标目录..."
ssh $SERVER_USER@$SERVER_IP "sudo rm -rf $REMOTE_PATH/*"

# 3. 上传新文件
echo "📤 上传新文件到服务器..."
rsync -avz --progress --delete \
    --exclude='.git' \
    --exclude='node_modules' \
    --exclude='.DS_Store' \
    $LOCAL_DIST_PATH/ $SERVER_USER@$SERVER_IP:$REMOTE_PATH/

# 4. 设置正确的权限
echo "🔐 设置文件权限..."
ssh $SERVER_USER@$SERVER_IP "
    sudo chown -R ecs-user:ecs-user $REMOTE_PATH
    sudo chmod -R 755 $REMOTE_PATH
    sudo find $REMOTE_PATH -type f -exec chmod 644 {} \;
"

# 5. 重新加载 Nginx 配置
echo "🔄 重新加载 Nginx..."
ssh $SERVER_USER@$SERVER_IP "
    sudo nginx -t && sudo systemctl reload nginx
"

if [ $? -eq 0 ]; then
    echo ""
    echo "🎉 部署成功！"
    echo ""
    echo "🌐 访问地址: http://$SERVER_IP/"
    echo ""
    echo "📋 部署信息:"
    echo "  服务器: $SERVER_IP"
    echo "  路径: $REMOTE_PATH"
    echo "  时间: $(date)"
    echo ""
    echo "💡 提示: 如果页面没有更新，请清除浏览器缓存"
else
    echo "❌ 部署过程中出现错误，请检查服务器配置"
    exit 1
fi